/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package GUI.Relatorio;

import Facade.Facade;
import Objetos.Meta;
import Objetos.Usuario;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Calendar;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;

/**
 *
 * @author celio
 */
public class TelaMetas extends JPanel {

    Calendar data;
    JButton meta;
    JLabel mes,ano, valor;
    JLabel labelMetas, labelRealizado, labelRealizadoXmeta, labelFaltaPmeta, labelProjecao;
    JTextField tValor;
    JComboBox tAno,tMes;
    String meses[] = {"","Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"};
    String anos[] = {"","2014"};
    Facade fa;
    Meta me;

    public TelaMetas(final Usuario usu) {

        JLabel tela = new JLabel("... :::   Metas   ::: ...");
        tela.setBounds(400, 10, 500, 20);
        add(tela);

        data = Calendar.getInstance();
        
        labelMetas = new JLabel();
        labelRealizado = new JLabel();
        labelRealizadoXmeta = new JLabel();
        labelFaltaPmeta = new JLabel();
        labelProjecao= new JLabel();
        
        mes = new JLabel("Mês");
        tMes = new JComboBox(meses);
        
        ano = new JLabel("Ano");
        tAno = new JComboBox(anos);
        
        valor = new JLabel("Meta: ");
        tValor = new JTextField();
       
        meta = new JButton("Metas");
        tAno = new JComboBox(anos);
        
        meta.setBounds(10, 50, 80, 20);
        mes.setBounds(20, 80, 50, 20);
        tMes.setBounds(10, 100, 100, 20);
        
        ano.setBounds(130, 80, 50, 20);
        tAno.setBounds(120, 100, 100, 20);
        
        valor.setBounds(222, 100, 100, 20);
        tValor.setBounds(255, 100, 80, 20);
        
        labelMetas.setBounds(10, 130, 200, 20);
        labelRealizado.setBounds(10, 160, 200, 20);
        labelRealizadoXmeta.setBounds(10, 190, 200, 20);
        labelFaltaPmeta.setBounds(10, 220, 200, 20);
        labelProjecao.setBounds(10, 250, 200, 20);
       
        add(meta);
        add(ano);
        add(tAno);
        
        add(mes);
        add(tMes);
        
        add(labelMetas);
        add(labelRealizado);
        add(labelRealizadoXmeta);
        add(labelFaltaPmeta);
        add(labelProjecao);
        //add(valor);
        //add(tValor);
       

        meta.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
            
                fa = new Facade();
                me = fa.procurarPeloMesAno_Meta(Funcoes.funcoes.pegarNumeroMes(tMes.getSelectedItem().toString()), tAno.getSelectedItem().toString(), usu);
                
                if(me==null){
                    JOptionPane.showMessageDialog(null, "Meta para esse mês ainda não foi cadastrada!");
                }else{
                    
                     String dataInicio = Funcoes.funcoes.dataInicioMes(tMes.getSelectedItem().toString())+"/"+tAno.getSelectedItem().toString();
                     String dataFim = Funcoes.funcoes.dataFimMes(tMes.getSelectedItem().toString())+"/"+tAno.getSelectedItem().toString();
                     int diasPassados = Integer.parseInt(data.getTime().toLocaleString().substring(0,2));
                     double meta=Double.parseDouble(me.getValor());
                     double realizado = fa.somarPedidos_OS(dataInicio,dataFim,usu);
                     double metaXrealizado = (realizado*100)/meta;
                     double projecao = (realizado/diasPassados)*Integer.parseInt(me.getQtdDiasUteis());
                     labelMetas.setText("Meta: R$ "+Funcoes.funcoes.paraFormatoDinheiro(meta));
                     labelRealizado.setText("Realizado: R$ "+Funcoes.funcoes.paraFormatoDinheiro(realizado));
                     labelRealizadoXmeta.setText("Percentual da meta: "+Funcoes.funcoes.paraFormatoDinheiro(metaXrealizado)+"%");
                     labelFaltaPmeta.setText("Falta: R$ "+Funcoes.funcoes.paraFormatoDinheiro(meta-realizado));
                     labelProjecao.setText("Projeção para o mês: R$ "+Funcoes.funcoes.paraFormatoDinheiro(projecao));
                     
                }
                
                
            }
        });
        
        setLayout(null);
        setBackground(Color.LIGHT_GRAY);
        setBorder(BorderFactory.createBevelBorder(1, Color.DARK_GRAY, Color.DARK_GRAY));
        setSize(800, 800);
        setVisible(true);
        revalidate();
        repaint();
    }

}
